package bean;

import java.io.Serializable;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.primefaces.component.datatable.DataTable;

import br.com.biblioteca.interfaces.GerenciadorDeEditora;
import br.com.biblioteca.model.Editora;

@ManagedBean
@SessionScoped
public class EditoraBEAN implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	@EJB
	private GerenciadorDeEditora gerenciadorDeEditora;
	
	private Editora editora;
	private DataTable datatable;
	private Boolean btnSalvar;
	private Boolean btnCadastrar;

	public EditoraBEAN(){
		editora = new Editora();
		btnSalvar = false;
		btnCadastrar = true;
		//teste
	}
	
	public String cadastrarEditora() {
		gerenciadorDeEditora.adicionarEditora(editora);
		editora = new Editora();
		FacesContext context = FacesContext.getCurrentInstance(); 
		context.addMessage(null, new FacesMessage("Successful", "Cadastro realizado com sucesso!! "));
		return "";
	}
	
	public String cancelar(){
		btnSalvar = false;
		btnCadastrar = true;
		editora = new Editora();
		return "telaAdm.xhtml";
	}
	
	public String salvarEditora(){
		gerenciadorDeEditora.alterarEditora(editora);
		btnSalvar = false;
		btnCadastrar = true;
		editora = new Editora();
		//conversa.end();
		return "";
	}
	
	public String editarEditora() {
		//conversa.begin();
		editora = (Editora) datatable.getRowData();
		btnSalvar = true;
		btnCadastrar = false;
		return "telaCadEditora.xhtml";	}
	
	public String deletarEditora(){
		editora = (Editora) datatable.getRowData();
		gerenciadorDeEditora.deletarEditora(editora);
		editora = new Editora();
		return "";
	}
	
	public List<Editora> getEditoras() {
		return gerenciadorDeEditora.getEditoras();
	}
	
	public Editora getEditora() {
		return editora;
	}

	public void setEditora(Editora editora) {
		this.editora = editora;
	}

	public DataTable getDatatable() {
		return datatable;
	}

	public void setDatatable(DataTable datatable) {
		this.datatable = datatable;
	}

	public Boolean getBtnSalvar() {
		return btnSalvar;
	}

	public void setBtnSalvar(Boolean btnSalvar) {
		this.btnSalvar = btnSalvar;
	}

	public Boolean getBtnCadastrar() {
		return btnCadastrar;
	}

	public void setBtnCadastrar(Boolean btnCadastrar) {
		this.btnCadastrar = btnCadastrar;
	}
	
}
